#ifndef __STATE_H__
#define __STATE_H__


#ifdef __cplusplus
extern "C" {
#endif
#include "cmsis_os2.h"
enum State{
    STATE_RUN,
    STATE_STOP,
    STATE_CMD_OUTPUT,
    STATE_ERROR
};
/**
 * @brief 日志模式
 * @note NORMAL:普通模式, 
 *       TIME:时间戳模式, 带时间戳记录
 *       PERFORMANCE_1:性能测试模式,使用串口1
 *       PERFORMANCE_2:性能测试模式，使用串口2
 *       具体的区别：普通模式，会在每帧数据前记录串口号，数据的长度
 *       时间戳模式，会在每帧数据前记录串口号，数据的长度，时间戳
 *       性能测试模式，不记录任何信息，直接记录数据
 * 
 */
enum LOG_Mode{
    LOG_MODE_NORMAL,
    LOG_MODE_TIME,
    LOG_MODE_PERFORMANCE_1,
    LOG_MODE_PERFORMANCE_2
};

extern volatile enum State state;
extern osMutexId_t state_mutex;

void state_init(void);
#ifdef __cplusplus
}
#endif

#endif /* ! __STATE_H__ */


